To assist in the efficient operation of a complex program, a technique referred to as “lazy loading” is used. Lazy loading defers initialization of an object until the point at which it is needed. Another aspect of computer programming that requires consistency for the effective deployment of a program is that of a namespace. A namespace (sometimes also called a name scope) is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols (i.e., names). An identifier defined in a namespace is associated only with that namespace.
One aspect of lazy loading and minification is that all namespaced identifiers are flattened to reside in a single namespace. Therefore, when using a lazy loading technique, the namespace must be the global namespace in order to be accessible across individually loaded modules.
When code resides on many web pages on the Internet, the risks of namespace collision is heightened. In addition, as developers release future versions of a program that add one or more identifiers would potentially create other unexpected problems. Polluting the global namespace can further lead to hard-to-debug errors.